package com.example.micro_property_springboot.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.example.micro_property_springboot.pojo.AssetCheckPlan;
import com.example.micro_property_springboot.pojo.DTO.request.AssetCheckPlanCreateRequest;
import com.example.micro_property_springboot.pojo.DTO.request.AssetCheckPlanUpdateRequest;

import java.util.List;

public interface AssetCheckPlanService extends IService<AssetCheckPlan> {
    /**
     * 创建盘点计划
     * @param request 盘点计划创建请求
     * @return 创建的盘点计划
     */
    AssetCheckPlan createAssetCheckPlan(AssetCheckPlanCreateRequest request);

    /**
     * 更新盘点计划
     * @param id 盘点计划ID
     * @param request 盘点點计划更新请求
     * @return 更新后的盘点计划
     */
    AssetCheckPlan updateAssetCheckPlan(Long id, AssetCheckPlanUpdateRequest request);

    /**
     * 开始盘点
     * @param id 盘点计划ID
     * @return 更新后的盘点计划
     */
    AssetCheckPlan startAssetCheckPlan(Long id);

    /**
     * 完成盘点
     * @param id 盘点计划ID
     * @return 更新后的盘点计划
     */
    AssetCheckPlan completeAssetCheckPlan(Long id);

    /**
     * 获取盘点计划列表
     * @param status 盘点计划状态
     * @param checkUserId 盘点人ID
     * @return 盘点计划列表
     */
    List<AssetCheckPlan> getAssetCheckPlans(String status, Long checkUserId);
    /**
     * 取消盘点计划
     * @param id 盘点计划ID
     * @return 更新后的盘点计划
     */
    AssetCheckPlan cancelAssetCheckPlan(Long id);
}
